package com.zdkj.subway.check.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.annotation.Id;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * sw_au_tvm_single_assist TVM票款差异协查-单台设备
 */
@Data
public class SwAuTvmSingleAssist {
    /**
     * 唯一标识
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Integer id;
    /**
     * TVM票款差异审核表中的ID
     */
    Integer relationid;
    /**
     * TVM编号
     */
    String tvmCode;
    /**
     * 线路编号
     */
    String lineCode;
    /**
     * 站点编号
     */
    String stationCode;
    /**
     * 收入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    Date incomeTime;
    /**
     * 实点金额（分）
     */
    BigDecimal actualMoney;
    /**
     * （结账单据）系统金额
     */
    BigDecimal tvmBillOrderMoney;
    /**
     * 协查差异金额（分）
     */
    BigDecimal diffMoney;
    /**
     * 回馈差异金额（分）
     */
    BigDecimal replyDiffMoney;
    /**
     * 协查状态
     */
    String assistInvestStatus;
    /**
     * 反馈状态
     */
    String replyStatus;
    /**
     * 替换状态
     */
    String replaceStatus;
    /**
     * 协查点击下发时的下发时间
     */
    String sendTime;
    /**
     * 机电反馈时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date replyTime;
    /**
     * 替换时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date replaceTime;
    /**
     * 回馈原因（字典）
     */
    String replyReason;
    /**
     * 回馈详情
     */
    String replyContent;
    /**
     * 操作员ID（机电回馈人员）
     */
    Integer operatorId;
    /**
     * 操作员工号（机电回馈人员）
     */
    String operatorCode;

    /**
     * 手工清出备注
     */
    String stationCleanRemark;
    
    /**
     * 创建人ID
     */
    Integer creatorId;
    /**
     * 创建人名称
     */
    String creatorName;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date createTime;


    //21-03-08
    /**
     * SC充值金额（分）
     */
    BigDecimal depositAmount;
    /**
     * SC售票金额（分）
     */
    BigDecimal saleAmount;
    /**
     * SC故障退款金额（分）
     */
    BigDecimal errorRefundAmount;
    /**
     * 回馈充值金额（分）
     */
    BigDecimal replyRechargeMoney;
    /**
     * 回馈售卖金额（分）
     */
    BigDecimal replySaleMoney;
    /**
     * 回馈故障退款金额（分）
     */
    BigDecimal replyErrorReturnMoney;
    /**
     * 回馈合计（分）
     */
    BigDecimal replyTotal;
    /**
     * 客运回馈时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date kyReplyTime;
    /**
     * 客运专业回馈差异原因（字典）
     */
    String kyReplyReason;
    /**
     * 客运回馈状态
     */
    String kyReplyStatus;
    /**
     * 客运专业回馈详情
     */
    String kyReplyDetail;
    /**
     * 客运协查状态
     */
    String kyAssistInvestStatus;
    /**
     * 客运回馈人工号
     */
    String kyReplyCode;
    /**
     * 客运回馈人员
     */
    String kyReplyName;

    /**
     * 车站站长审核意见
     */
    String auditStationOpinion;

    /**
     * 车站审核审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date auditStationTime;

    /**
     * 车站审核人工号
     */
    String auditStationJobNo;

    /**
     * 车站审核人名称
     */
    String auditStationName;

    /**
     * 票务审核意见
     */
    String auditWorkshopOpinion;

    /**
     * 车间票务专业审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date auditWorkshopTime;

    /**
     * 车间票务专业审核人名称
     */
    @ExcelProperty(value = "车间票务专业", index = 8)
    @ApiModelProperty(value = "车间票务专业审核人名称")
    private String auditWorkshopName;
    /**
     * 车间票务专业审核人工号
     */
    @ExcelIgnore
    @ApiModelProperty(value = "车间票务专业审核人工号")
    private String auditWorkshopJobNo;

    /**
     * 部门票务专业名称
     */
    @ExcelProperty(value = "部门票务专业", index = 9)
    @ApiModelProperty(value = "部门票务专业名称")
    private String auditDeptName;
    /**
     * 部门票务专业审核人工号
     */
    @ExcelIgnore
    @ApiModelProperty(value = "部门票务专业审核人工号")
    private String auditDeptJobNo;
    /**
     * 部门票务专业审核意见
     */
    @ExcelIgnore
    @ApiModelProperty(value = "部门票务专业审核意见")
    private String auditDeptOpinion;
    /**
     * 部门票务专业审核时间
     */
    @ExcelIgnore
    @ApiModelProperty(value = "部门票务专业审核时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date auditDeptTime;

    @TableField(exist = false)
    LocalDateTime jdReplyDateTime;
    @TableField(exist = false)
    LocalDateTime kyReplyDateTime;
    @TableField(exist = false)
    LocalDateTime sendDateTime;
    @TableField(exist = false)
    LocalDate incomeDate;
    @TableField(exist = false)
    @Value("check")
    String isFlag;//用于判断是车站还是收入审核
    String delFlag;
    /**
     * 作废状态：0未作废 1已作废
     */
    String invalidStatus;

    @TableField(exist = false)
    String operatorName;

    @TableField(exist = false)
    String assistInvestStatusStr;

    //2021-11-22
    /**
     * 下发人工号
     */
    String sendPersonCode;
    /**
     * 下发人名称
     */
    String sendPersonName;
    
	/*
	 协查下发类型，0：无 1：发设备部 2：发车站  3：发设备部和车站
	*/
	String assistCategory; 

    //查询范围  station 车站（2，3）   jd:(1,3)
	@TableField(exist = false)
	String assistCategoryRole;
		
}
